package com.hm.hall.commons.constans.po;

/**
 * 通用鉴权操作参数对象  (基本参数)
 */
public class StubInfo {
    /**
     * 用户id；系统级主键，不对用户展示 ;
     */
    public long userId = 0;

    /**
     * 客户端与服务端会话令牌,云端生成 必填  32位字符串
     */
    public String sessionToken;

    /**
     * 参数串排序校验(32位的大写字符串) 必填
     * 调用API 时需要对请求参数进行签名验证，服务器也会对该请求参数进行验证是否合法的。方法如下：
     * (1)根据参数名称（除签名和图片）将所有请求参数按照字母先后顺序排序:key + value .... key + value
     * 例如：将foo=1,bar=2,baz=3 排序为bar=2,baz=3,foo=1，参数名和参数值链接后，得到拼装字符串bar2baz3foo1
     * <p>
     * (2)系统支持MD5和加密方式
     * md5：将secret 拼接到参数字符串头、尾进行md5加密后，再转化成大写，格式是：byte2hex(md5(secretkey1value1key2value2...secret))
     */
    public String sign;

    /**
     * 设备类型 1 :h5 , 2:ios ,3: Android
     */
    public Integer deviceType;
    /**
     * app版本号
     */
    public String appVersion;


    public StubInfo() {
    }

    public StubInfo(long userId, String sessionToken, String sign) {
        this.userId = userId;
        this.sessionToken = sessionToken;
        this.sign = sign;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public String getSessionToken() {
        return sessionToken;
    }

    public void setSessionToken(String sessionToken) {
        this.sessionToken = sessionToken;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public Integer getDeviceType() {
        return deviceType;
    }

    public void setDeviceType(Integer deviceType) {
        this.deviceType = deviceType;
    }

    public String getAppVersion() {
        return appVersion;
    }

    public void setAppVersion(String appVersion) {
        this.appVersion = appVersion;
    }

}

